/*
Copyright: Marcelo S. N. Mancini (Hipreme|MrcSnm), 2018 - 2021
License:   [https://creativecommons.org/licenses/by/4.0/|CC BY-4.0 License].
Authors: Marcelo S. N. Mancini

	Copyright Marcelo S. N. Mancini 2018 - 2021.
Distributed under the CC BY-4.0 License.
   (See accompanying file LICENSE.txt or copy at
	https://creativecommons.org/licenses/by/4.0/
*/
module hip.hiprenderer.config;

version(Android) enum UseGLES = true;
else version(PSVita) enum UseGLES = true;
else version(WebAssembly) enum UseGLES = true;
else enum UseGLES = false;

version(OpenGL)
{
    version(Android){}
    else version(PSVita){}
    else version(WebAssembly){}
    else version(Have_bindbc_opengl){}
    else static assert(false, "Tried to use OpenGL, but supplied no platform or library containing OpenGL.");
}


struct HipRendererConfig
{
    ///Use level 0 for pixel art games
    ubyte multisamplingLevel = 0;
    ///Single/Double/Triple buffering
    ubyte bufferingCount = 2;
    bool isMatrixRowMajor = true;
    bool fullscreen = false;
    bool vsync = true;


    void logConfiguration()
    {
        import hip.console.log;
        loglnInfo("Starting HipRenderer with configuration: ",
        "\nMultisamplingLevel: ", multisamplingLevel,
        "\nBufferingCount: ", bufferingCount,
        "\nFullscreen: ", fullscreen,
        "\nVsync: ", vsync? "activated" : "deactivated");
    }
}